iT邦幫忙

0

🧭 Git 分支管理的選擇之路與Mermaid流程圖

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20250726/20155103rMvLtnK8Il.png

🔀 為什麼我需要一套分支策略?

內部系統要開始上線使用了,需要有測試機與正式機。

因此,我開始設計一套穩定的 Git 分支管理策略。


🧱 我選擇了這套分支策略

分支命名與用途對照表:

分支名稱 角色 功能說明
feature/* 開發者個人功能分支 每個功能或 issue 對應一個分支
develop 測試機分支 整合所有功能,作為測試環境的部署來源
release 上線緩衝區 測試通過後,進行最終 code review 與測試
main 正式機分支 僅接收來自 release 的穩定版本,打 tag 後部署

🔁 完整流程圖(Mermaid)

sequenceDiagram
    participant Dev as 開發者
    participant Git as Git Repo
    participant Test as 測試機(develop)
    participant Prod as 正式機(main)

    Dev->>Git: 建立 feature/功能分支
    Dev->>Git: 提交 Pull Request
    Git-->>Git: 合併到 develop 分支
    loop 測試 develop 分支
    Git->>Test: 部署 develop 分支到測試機
    Test->>Dev: 測試回報 Bug(若有)
    Dev->>Git: 修復並更新 feature 分支
    Git-->>Git: develop 分支更新
    end

    Note over Git,Test: 測試通過後
    Git->>Git: 建立 release 分支
    Dev->>Git: ( Code review & 最終測試 )
    Git-->>Git: 合併 release 分支到 main
    Git->>Prod: 部署 main 分支到正式機
    Note over Dev,Prod: 用 CI/CD 工具監控分支:GitLab CI


🏷️打 Tag 的方式與操作備忘
ChatGPT 提供了詳細說明,我這裡記下重點:

指令 功能
git tag -a v1.0.0 -m "說明" 建立有說明的版本 tag
git push origin v1.0.0 推送特定 tag
git push origin --tags 推送所有 tag
git tag 查看所有 tag
git show v1.0.0 查看 tag 對應 commit

引入初期我打算先省略打tag的部分。


⚠️ 測試機該自動 pull 嗎?

問題 說明
安全性 測試機需有 git 權限,易被濫用
穩定性 pull 並不代表 build 或環境完整
混亂風險 每個 commit 都部署,可能破壞測試穩定性

我最後改用 CI/CD 工具(如 GitLab CI)來自動監控 develop 分支,有更新就進行 Build + 測試 + 部署,流程更乾淨也更透明。


✅ 我的部署規則總結如下:

項目 使用策略
測試環境部署來源 develop 分支,自動部署
正式環境部署來源 main 分支,只從 release 合併來的版本
CI/CD 工具 GitLab CI,未來考慮 GitHub Actions

🙋‍♀️ 適合詢問 GPT 的 prompt

請用 Mermaid 畫出一套 Git 分支流程圖,包含 develop、release、main 三個分支與測試、部署流程,適用於 .NET 舊專案部署到 IIS。


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言